package per.kongtouxu.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import per.kongtouxu.domain.dto.JsonDto;
import per.kongtouxu.domain.pojo.Menu;
import per.kongtouxu.domain.pojo.PageBean;
import per.kongtouxu.domain.pojo.User;
import per.kongtouxu.service.MenuService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

@RestController
@RequestMapping("/menu")
public class MenuController {
    @Autowired
    private MenuService menuService;
    //分页查询
    @RequestMapping("/findByPage")
    public
    PageBean<Menu> findUserByPage(HttpServletRequest req, HttpServletResponse resp)throws Exception{
        //1.获取参数
        String currentPage = req.getParameter("currentPage");
        String pageSize = req.getParameter("pageSize");
        //2.调用service
        PageBean<Menu> pageBean = menuService.findByPage(Integer.parseInt(currentPage), Integer.parseInt(pageSize));
        //3.返回JSON
        return pageBean;
    }
    //添加菜单
    @RequestMapping("/addMenu")
    public JsonDto addMenu(@RequestBody Menu menu){
        System.out.println("Menu:"+menu);
        try {
            menuService.add(menu);
            JsonDto jsonDto = new JsonDto();
            jsonDto.setId(1);
            jsonDto.setMessage("增新成功");
            return jsonDto;
        } catch (Exception e) {
            e.printStackTrace();
            JsonDto jsonDto = new JsonDto();
            jsonDto.setId(0);
            jsonDto.setMessage("增新失败");
            return jsonDto;
        }
    }
    //更新菜单
    @RequestMapping("/updateMenu")
    public JsonDto updateMenu(@RequestBody Menu menu){
        System.out.println("Menu:"+menu);
        try {
            menuService.update(menu);
            JsonDto jsonDto = new JsonDto();
            jsonDto.setId(1);
            jsonDto.setMessage("更新成功");
            return jsonDto;
        } catch (Exception e) {
            e.printStackTrace();
            JsonDto jsonDto = new JsonDto();
            jsonDto.setId(0);
            jsonDto.setMessage("更新失败");
            return jsonDto;
        }
    }
    //删除菜单
    @RequestMapping("/deleteMenu")
    public JsonDto updateMenu(@RequestParam("menuId") Integer menuId){
        System.out.println("menuId:"+menuId);
        try {
            menuService.delete(menuId);
            JsonDto jsonDto = new JsonDto();
            jsonDto.setId(1);
            jsonDto.setMessage("删除成功");
            return jsonDto;
        } catch (Exception e) {
            e.printStackTrace();
            JsonDto jsonDto = new JsonDto();
            jsonDto.setId(0);
            jsonDto.setMessage("删除失败");
            return jsonDto;
        }
    }
    //查询所有菜单
    @RequestMapping("/findAll")
    public List<Menu> findAll(){
        return menuService.findAll();
    }
    //根据roleId查询菜单
    @RequestMapping("/findMenuByRoleId")
    public List<Menu> findMenuByRoleId(@RequestParam("RoleId") Integer roleId){
        return menuService.findMenuByRoleId(roleId);
    }
}
